home *** CD-ROM | disk | FTP | other *** search
/ HPAVC / HPAVC CD-ROM.iso / pc / SPX30.ZIP / SPX_INT.ZIP / SPX_OBJ.INT < prev    next >
Encoding:
Text File  |  1994-06-10  |  2.0 KB  |  65 lines

  1. Unit spx_obj;
  2.  
  3. {$X+,O+ }
  4. { SPX Library Version 3.0  Copyright 1994 Scott D. Ramsay }
  5.  
  6. Interface
  7.  
  8. Uses Strings,Objects;
  9.  
  10. type
  11.   objmode = (dNothing,dDraw,dErase,dUpdate,dCalc);
  12.   plist   = ^tlist;
  13.   PObjs   = ^TObjs;
  14.   TObjs   = object(TObject)
  15.               powner           : plist;
  16.               killed,cankill,
  17.               overshow         : boolean;
  18.               id               : integer;
  19.               constructor init;
  20.               constructor Load(var S:TStream);
  21.               procedure Store(var S:TStream);
  22.               procedure DrawItemObject;virtual;
  23.               procedure CalcItemObject;virtual;
  24.               procedure EraseItemObject;virtual;
  25.               procedure UpdateItemObject;virtual;
  26.               function CheckHit(hx,hy:integer;item:pobjs):boolean;virtual;
  27.               destructor done; virtual;
  28.             end;
  29.   tlist = record
  30.             item      : pobjs;
  31.             prev,next : plist;
  32.           end;
  33.   padd  = ^tadd;
  34.   tadd  = record
  35.             ta    : plist;
  36.             front : boolean;
  37.             next  : padd;
  38.           end;
  39.   pkill = ^tkill;
  40.   tkill = record
  41.             tk   : plist;
  42.             next : pkill;
  43.           end;
  44.  
  45. const
  46.   RObjs   : TStreamRec = (
  47.               ObjType: 1000;
  48.               VmtLink: Ofs(TypeOf(TObjs)^);
  49.               Load: @TObjs.Load;
  50.               Store: @TObjs.Store
  51.             );
  52.  
  53.   
  54. function addp(var nkbeg,nkend:plist;p:plist):plist; { same as addend: for compatibility }
  55. function addbeg(var nkbeg,nkend:plist;p:plist):plist;
  56. function addend(var nkbeg,nkend:plist;p:plist):plist;
  57. procedure deletep(var nkbeg,nkend,p:plist);
  58. procedure add2add_list(var add:padd;i:plist;front:boolean);
  59. procedure cleanadd_list(var add:padd;var nkbeg,nkend:plist);
  60. procedure add2kill_list(var kill:pkill;i:plist);
  61. procedure cleankill_list(var kill:pkill;var nkbeg,nkend:plist);
  62. procedure clean_plist(var nkbeg,nkend:plist);
  63. procedure doallitems(head:plist;m:objmode);
  64.  
  65.